<?php
class Admin_Model_Produtos extends Zend_Db_Table
{
	protected $_name 	= 'produtos';
	protected $_primary = 'id';
	
	public function dadosProduto($id)
	{
		try
		{
	        $select  =	$this->select()
			        	->from("produtos")
			        	->where("id = $id")
			        	->order("id");
 
			$row = $this->fetchRow($select);
			return $row;		
		}
		catch(Zend_Db_Exception $e) 
		{
			echo 'falha ao carregar dados de produtos';
		}

	}
	
	public function lista()
	{
		try 
		{
		 	return $this->fetchAll();	
		}
		catch(Zend_Db_Exception $e) 
		{
			echo 'falha ao carregar lista de produtos';
		}
	}
	
	public function novoProduto(Array $dados)
	{
		try
		{
			$dados = self::colunas($dados);
			$last_id =  parent::insert($dados); // metodo da zenddbtable
			return array ('last_id'=>$last_id, 'mensagem'=>'produto registrado com sucesso','status'=>'sucesso');
		}
		catch(Zend_Db_Exception $e ) 
		{
			return array ('last_id'=>false, 'mensagem'=>$e->getMessage(),'status'=>'falha');
		}
	}
	
	public function editarProduto(Array $dados, $id)
	{
		try
		{
			$where = $this->getAdapter()->quoteInto("id = ?", $id);
			$dados = self::colunas($dados);
			return parent::update($dados, $where); // metodo da zenddbtable
		}
		catch(Zend_Db_Exception $e ) 
		{
			echo $e->getMessage();
		}
	}
	
	public function desativarProduto(Array $dados, $id)
	{
		try
		{
			$where = $this->getAdapter()->quoteInto("id = ?", $id);
			$dados = self::colunas($dados);
			return parent::update($dados, $where); // metodo da zenddbtable
		}
		catch(Zend_Db_Exception $e ) 
		{
			echo $e->getMessage();
		}
	}		
	
	/**
	 * limpa o array para o insert
	 * somente para colunas validas
	 */
	protected function colunas(Array $dados)
	{
		foreach ($dados as $coluna=>$valor)
		{
			if(in_array($coluna, $this->_getCols()))
			{
				$ret[$coluna] = $valor;
			}
		}
		return $ret;
	}
}